package models

import "time"

// Script 表示一个Python脚本项目
type Script struct {
	Name      string    `json:"name"`
	Path      string    `json:"path"`      // 主文件路径
	Dir       string    `json:"dir"`       // 脚本目录
	MainFile  string    `json:"main_file"` // 主文件名
	Files     []string  `json:"files"`     // 所有文件列表
	Venv      string    `json:"venv"`      // 虚拟环境名称
	CreatedAt time.Time `json:"created_at"`
	UpdatedAt time.Time `json:"updated_at"`
}

// ProcessInfo 表示运行中的进程信息
type ProcessInfo struct {
	PID       int       `json:"pid"`
	StartTime time.Time `json:"start_time"`
	Status    string    `json:"status"`
	Output    []string  `json:"output"`
	Error     []string  `json:"error"`
}

// VenvInfo 表示虚拟环境信息
type VenvInfo struct {
	Name          string    `json:"name"`
	Path          string    `json:"path"`
	PythonVersion string    `json:"python_version"`
	Packages      []Package `json:"packages"`
	CreatedAt     time.Time `json:"created_at"`
}

// Package 表示Python包信息
type Package struct {
	Name    string `json:"name"`
	Version string `json:"version"`
}

// SystemResources 表示系统资源使用情况
type SystemResources struct {
	CPU struct {
		Percent float64 `json:"percent"`
		Cores   int     `json:"cores"`
	} `json:"cpu"`
	Memory struct {
		Total     uint64  `json:"total"`
		Available uint64  `json:"available"`
		Used      uint64  `json:"used"`
		Percent   float64 `json:"percent"`
	} `json:"memory"`
	Disk struct {
		Total   uint64  `json:"total"`
		Used    uint64  `json:"used"`
		Free    uint64  `json:"free"`
		Percent float64 `json:"percent"`
	} `json:"disk"`
	RunningScripts int       `json:"running_scripts"`
	Timestamp      time.Time `json:"timestamp"`
}
